.\"
.\" librsync -- dynamic caching and delta update in HTTP
.\" 
.\" Copyright (C) 2000 by Martin Pool <mbp@humbug.org.au>
.\" 
.\" This program is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU Lesser General Public License
.\" as published by the Free Software Foundation; either version 2.1 of
.\" the License, or (at your option) any later version.
.\" 
.\" This program is distributed in the hope that it will be useful, but
.\" WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
.\" Lesser General Public License for more details.
.\" 
.\" You should have received a copy of the GNU Lesser General Public
.\" License along with this program; if not, write to the Free Software
.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
.\"
.TH rdiff 1 "$Date$" 
.SH NAME
rdiff \- compute and apply signature-based file differences
.SH SYNOPSYS
.nf
\fBrdiff\fP [\fIoptions\fP] \fBsignature\fP \fIold-file signature-file\fP
.PP
\fBrdiff\fP [\fIoptions\fP] \fBdelta\fP \fIsignature-file new-file delta-file\fP
.PP
\fBrdiff\fP [\fIoptions\fP] \fBpatch\fP \fIold-file delta-file new-file\fP
.fi
.SH USAGE
You can use \fBrdiff\fP to update files, much like \fBrsync\fP does.
However, unlike \fBrsync\fP, \fBrdiff\fP puts you in control.  There
are three steps to updating a file: \fBsignature\fP, \fBdelta\fP, and
\fBpatch\fP. Use the \fBsignature\fP subcommand to generate a small
\fIsignature-file\fP from the \fIold-file\fP. Use the \fBdelta\fP
subcommand to generate a small \fIdelta-file\fP from the \fIsignature-file\fP
to the \fInew-file\fP. Use the \fBpatch\fP subcommand to apply the
\fIdelta-file\fP to the \fIold-file\fP to regenerate the \fInew-file\fP.

.SH DESCRIPTION
In every case where a filename must be specified, \- may be used
instead to mean either standard input or standard output as
appropriate.  Be aware that if you do this, you'll need to terminate your
\fIoptions\fP with \-\- or \fBrdiff\fP will think you are passing it
an empty option.
.SH "RETURN VALUE"
0 for successful completion, 1 for environmental problems (file not
found, invalid options, IO error, etc), 2 for a corrupt file and 3 for
an internal error or unhandled situation in librsync or rdiff.
.SH "SEE ALSO"
.BR librsync "(3)"
.SH "AUTHOR"
Martin Pool <mbp@sourcefrog.net>
.PP
The original rsync algorithm was discovered by Andrew Tridgell.
.PP
rdiff development has been supported by Linuxcare, Inc and VA Linux
Systems.
